package com.example.hosptial.service;

import com.example.hosptial.model.enity.Admin;
import com.example.hosptial.model.view.DoctorView;
import jakarta.servlet.http.HttpSession;

import java.util.Optional;

public interface AuthService {
    /**
     * 管理员登录
     * @param username 用户名
     * @param password 密码
     * @return 管理员对象，登录失败返回null
     */
    Admin adminLogin(String username, String password);

    /**
     * 创建登录会话
     * @param session HTTP会话
     * @param admin 管理员对象
     */
    void createAdminSession(HttpSession session, Admin admin);

    /**
     * 退出登录
     * @param session HTTP会话
     */
    void logout(HttpSession session);

    /**
     * 验证管理员会话
     * @param session HTTP会话
     * @return 是否是有效的管理员会话
     */
    boolean validateAdminSession(HttpSession session);

    /**
     * 医生登录验证
     * @param doctorId 医生工号
     * @param password 密码
     * @return 医生视图信息
     */
    Optional<DoctorView> doctorLogin(String doctorId, String password);

    /**
     * 验证医生登录状态
     * @param doctorId 医生工号
     * @return 是否已登录
     */
    boolean isDoctorLoggedIn(String doctorId);

    /**
     * 医生登出
     * @param doctorId 医生工号
     */
    void doctorLogout(String doctorId);
}